<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>FE - react - base</title>
  <script src="https://unpkg.com/react@17/umd/react.development.js"></script>
  <script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
  <script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>
</head>
<body>
  
  <p>FE - react - 函数式组件</p>
  <p>适用简单组件定义</p>

  <div id="example"></div>

  <script type="text/babel">
    // 创建函数式组件
    function MyComponent(){
      console.log(this) // undefined  babel编译后开启了严格模式
      return <h3>函数式组件的内容</h3>
    }

    // 渲染函数式组件到页面
    ReactDom.render(<MyComponent/>, document.getElementById('example'))

    // 上面的 render 发生了什么？
    //  第一步：react解析发现了组件 MyComponent 组件
    //  第二步：发现组件是函数式组件，调用该函数，将返回的虚拟dom转换成真实dom，渲染到页面中


    /*
      S-1
      模块：向外提供特定功能的 js ,一般就是一个 js 文件
            随着业务逻辑的增加，代码越来越多并且越来越复杂
            能够复用js，简化 js 的编写，提高js的运行效率
      组件：比模块高一个等级，整体打包带走，html,css,js,image....
            复用代码，简化项目编码，提高运行效率
      模块化：应用都以模块来编写，这个应用就是一个模块化的应用
      组件化：应用都以组件来编写，这个应用就是一个组件化的应用
    */

    /*
      S-2
      函数式组件：   


  </script>

</body>
</html>